package dietmar.ckm3;

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JList;
import javax.swing.border.TitledBorder;
import javax.swing.border.LineBorder;
import java.awt.Color;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;

public class DruzynaGuii extends JFrame {

	private JPanel contentPane;
	private KlubGuiii klubgui;
	private Druzyna druzyna;
	private JTextField txtNazwaDruzyny;
	private JTextField txtIloscZawodnikow;
	private JTextField txtTrener;
	private JTextField txtUmiejetnosc;
	private JTextField txtSrednia;
	private JButton btnUsunZawodnika;
	private JButton btnEdytujZawodnika;
	private JButton btnDodajzawodnika;
	private JList list = new JList();
	private int id;

	

	

	
	public DruzynaGuii(KlubGuiii klubgui) {
		this.druzyna=new Druzyna();
		this.klubgui=klubgui;
		

		
		
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 495, 370);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		
		JLabel label = new JLabel("Nazwa Druzyny");
		
		txtNazwaDruzyny = new JTextField();
		txtNazwaDruzyny.setColumns(10);
		
		JLabel label_1 = new JLabel("Ilosc zawodnkwo");
		
		txtIloscZawodnikow = new JTextField();
		txtIloscZawodnikow.setEditable(false);
		txtIloscZawodnikow.setColumns(10);
		
		JButton btnZapisz = new JButton("Zapisz");
		btnZapisz.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				zapisz();
	
	
		}
		});
		
		JPanel panel = new JPanel();
		panel.setBorder(new TitledBorder(new LineBorder(new Color(0, 0, 255)), "Edytor", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		panel.setLayout(null);
		
		btnDodajzawodnika = new JButton("Dodaj Zawodnika");
		btnDodajzawodnika.setEnabled(false);
		btnDodajzawodnika.setBounds(10, 21, 180, 23);
		panel.add(btnDodajzawodnika);
		btnDodajzawodnika.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				dodaj();
				
			}
		});
		
		btnEdytujZawodnika = new JButton("Edytuj Zawodnika");
		btnEdytujZawodnika.setEnabled(false);
		btnEdytujZawodnika.setBounds(10, 55, 180, 23);
		panel.add(btnEdytujZawodnika);
		btnEdytujZawodnika.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				edytuj();
			}
		});
		
		btnUsunZawodnika = new JButton("Usun Zawodnika");
		btnUsunZawodnika.setEnabled(false);
		btnUsunZawodnika.setBounds(10, 89, 180, 23);
		panel.add(btnUsunZawodnika);
		btnUsunZawodnika.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				usun();
				odswiez();
				guziki();
		
			}
		});
		
		JPanel panel_1 = new JPanel();
		panel_1.setBorder(new TitledBorder(new LineBorder(new Color(0, 0, 255)), "Zawodnicy", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		

		
		JButton button_4 = new JButton("Powrot");
		button_4.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				powrot();
			}
		});
		
		JPanel panel_2 = new JPanel();
		panel_2.setBorder(new TitledBorder(new LineBorder(new Color(0, 0, 255)), "Trener", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		panel_2.setLayout(null);
		
		JLabel label_2 = new JLabel("Trener");
		label_2.setBounds(10, 24, 46, 14);
		panel_2.add(label_2);
		
		JLabel label_3 = new JLabel("Umiejetnosc");
		label_3.setBounds(10, 49, 71, 14);
		panel_2.add(label_3);
		
		JButton button_5 = new JButton("Zatrudnij/Zmien");
		button_5.setBounds(34, 74, 134, 23);
		panel_2.add(button_5);
		button_5.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
			trener();
				
			}
		});
		
		txtTrener = new JTextField();
		txtTrener.setEditable(false);
		txtTrener.setColumns(10);
		txtTrener.setBounds(74, 21, 116, 20);
		panel_2.add(txtTrener);
		
		txtUmiejetnosc = new JTextField();
		txtUmiejetnosc.setEditable(false);
		txtUmiejetnosc.setColumns(10);
		txtUmiejetnosc.setBounds(151, 46, 39, 20);
		panel_2.add(txtUmiejetnosc);
		
		JLabel label_4 = new JLabel("Srednia umiejetnosc");
		
		txtSrednia = new JTextField();
		txtSrednia.setColumns(10);
		GroupLayout gl_contentPane = new GroupLayout(contentPane);
		gl_contentPane.setHorizontalGroup(
			gl_contentPane.createParallelGroup(Alignment.LEADING)
				.addGroup(gl_contentPane.createSequentialGroup()
					.addGap(5)
					.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)
						.addGroup(gl_contentPane.createSequentialGroup()
							.addComponent(label, GroupLayout.PREFERRED_SIZE, 99, GroupLayout.PREFERRED_SIZE)
							.addGap(10)
							.addComponent(txtNazwaDruzyny, GroupLayout.PREFERRED_SIZE, 125, GroupLayout.PREFERRED_SIZE)
							.addGap(144)
							.addComponent(btnZapisz, GroupLayout.PREFERRED_SIZE, 89, GroupLayout.PREFERRED_SIZE))
						.addGroup(gl_contentPane.createSequentialGroup()
							.addComponent(label_1, GroupLayout.PREFERRED_SIZE, 99, GroupLayout.PREFERRED_SIZE)
							.addGap(10)
							.addComponent(txtIloscZawodnikow, GroupLayout.PREFERRED_SIZE, 125, GroupLayout.PREFERRED_SIZE))
						.addGroup(gl_contentPane.createSequentialGroup()
							.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)
								.addComponent(panel_1, GroupLayout.PREFERRED_SIZE, 257, GroupLayout.PREFERRED_SIZE)
								.addGroup(gl_contentPane.createSequentialGroup()
									.addGap(109)
									.addComponent(txtSrednia, GroupLayout.PREFERRED_SIZE, 39, GroupLayout.PREFERRED_SIZE))
								.addComponent(label_4, GroupLayout.PREFERRED_SIZE, 112, GroupLayout.PREFERRED_SIZE)
								.addComponent(button_4, GroupLayout.PREFERRED_SIZE, 89, GroupLayout.PREFERRED_SIZE))
							.addGap(10)
							.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)
								.addComponent(panel, GroupLayout.PREFERRED_SIZE, 200, GroupLayout.PREFERRED_SIZE)
								.addComponent(panel_2, GroupLayout.PREFERRED_SIZE, 200, GroupLayout.PREFERRED_SIZE)))))
		);
		gl_contentPane.setVerticalGroup(
			gl_contentPane.createParallelGroup(Alignment.LEADING)
				.addGroup(gl_contentPane.createSequentialGroup()
					.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)
						.addGroup(gl_contentPane.createSequentialGroup()
							.addGap(4)
							.addComponent(label))
						.addGroup(gl_contentPane.createSequentialGroup()
							.addGap(1)
							.addComponent(txtNazwaDruzyny, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
						.addComponent(btnZapisz))
					.addGap(3)
					.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)
						.addGroup(gl_contentPane.createSequentialGroup()
							.addGap(3)
							.addComponent(label_1))
						.addComponent(txtIloscZawodnikow, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
					.addGap(9)
					.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)
						.addGroup(gl_contentPane.createSequentialGroup()
							.addComponent(panel_1, GroupLayout.DEFAULT_SIZE, 195, Short.MAX_VALUE)
							.addGap(8)
							.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)
								.addComponent(txtSrednia, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
								.addGroup(gl_contentPane.createSequentialGroup()
									.addGap(3)
									.addComponent(label_4)))
							.addGap(15)
							.addComponent(button_4)
							.addGap(2))
						.addGroup(gl_contentPane.createSequentialGroup()
							.addComponent(panel, GroupLayout.PREFERRED_SIZE, 132, GroupLayout.PREFERRED_SIZE)
							.addGap(11)
							.addComponent(panel_2, GroupLayout.PREFERRED_SIZE, 120, GroupLayout.PREFERRED_SIZE)))
					.addGap(8))
		);
		GroupLayout gl_panel_1 = new GroupLayout(panel_1);
		gl_panel_1.setHorizontalGroup(
			gl_panel_1.createParallelGroup(Alignment.LEADING)
				.addGroup(gl_panel_1.createSequentialGroup()
					.addGap(5)
					.addComponent(list, GroupLayout.PREFERRED_SIZE, 237, GroupLayout.PREFERRED_SIZE))
		);
		gl_panel_1.setVerticalGroup(
			gl_panel_1.createParallelGroup(Alignment.LEADING)
				.addGroup(gl_panel_1.createSequentialGroup()
					.addGap(5)
					.addComponent(list, GroupLayout.DEFAULT_SIZE, 163, Short.MAX_VALUE)
					.addGap(6))
		);
		panel_1.setLayout(gl_panel_1);
		contentPane.setLayout(gl_contentPane);
	}

void zapisz()
	{

		
		if(klubgui.getList().getSelectedIndex()<0)	{
			dodajDruzyne();
			
		}
		else 
		{
			
			edytujDruzyne(klubgui.getKlub().zwrocDruzyne(klubgui.getList().getSelectedIndex()));
		
			
		}
		guziki();
		
	}
	void dodaj()
	{
		ZawodnikGuii zawodnikgui = new ZawodnikGuii(this);
		zawodnikgui.setVisible(true);	
		Zawodnik zawodnik = new Zawodnik();
		 zawodnikgui.setZawodnik(zawodnik);
		 
	}
	void edytuj()
	{
		ZawodnikGuii zawodnikgui = new ZawodnikGuii(this);
		zawodnikgui.setZawodnik(druzyna.zwrocZawodnika(getList().getSelectedIndex()));
		zawodnikgui.uzupelni();
	    zawodnikgui.setVisible(true);
	
	}
	void powrot(){
		klubgui.odswiez();
		setVisible(false);
	}
	void trener()
	{
	TrenerGui trenergui=new TrenerGui(this);
		trenergui.setVisible(true);
	}
	void dodajDruzyne()
	{	
		id=Id.idDruzyny();
			String nazwa=(txtNazwaDruzyny.getText());
			druzyna.setNazwa(nazwa);
			druzyna.setId(id);
			klubgui.getKlub().dodajDruzyne(druzyna);
			System.out.println("	"+nazwa+" ");
			System.out.println("id druzyny"+druzyna.getId());
			System.out.println(klubgui.getKlub().iloscDruzyn());
			
			
			  
			   
	}
	void edytujDruzyne(Druzyna druzyna)
	{

	    druzyna.setNazwa(txtNazwaDruzyny.getText());
	
	}
	void uzupelni()
	{
    System.out.println(druzyna.getSklad().size());
	getTxtNazwaDruzyny().setText(druzyna.getNazwa());	
    getTxtIloscZawodnikow().setText(Integer.toString(druzyna.iloscZawodnikow()));
	getList().setListData(druzyna.getSklad());
	odswiez();
	odswieztekst();
	guziki();
	}
	
	void usun()
	{
		druzyna.usunZawodnika(list.getSelectedIndex());
	}
	void odswiez()
	{
		
		list.setListData(druzyna.getSklad());
		getTxtIloscZawodnikow().setText(Integer.toString(druzyna.iloscZawodnikow()));
		getTxtSrednia().setText(Double.toString(getDruzyna().sredniaUmiejetnoscDruzyny(druzyna.iloscZawodnikow())));
		guziki();
	}
	void odswieztekst()
	{
		getTxtTrener().setText(getDruzyna().getTrener().toString());
		getTxtUmiejetnosc().setText(Double.toString(getDruzyna().getTrener().getUmiejetnosc()));
	}
	void guziki()
	{
		getBtnEdytujZawodnika().setEnabled(true);
		getBtnDodajzawodnika().setEnabled(true);
		getBtnUsunZawodnika().setEnabled(true);
	
		
	}


	public KlubGuiii getKlubgui() {
		return klubgui;
	}

	public void setKlubgui(KlubGuiii klubgui) {
		this.klubgui = klubgui;
	}

	public Druzyna getDruzyna() {
		return druzyna;
	}

	public void setDruzyna(Druzyna druzyna) {
		this.druzyna = druzyna;
	}

	public JTextField getTxtNazwaDruzyny() {
		return txtNazwaDruzyny;
	}

	public void setTxtNazwaDruzyny(JTextField txtNazwaDruzyny) {
		this.txtNazwaDruzyny = txtNazwaDruzyny;
	}

	public JTextField getTxtIloscZawodnikow() {
		return txtIloscZawodnikow;
	}

	public void setTxtIloscZawodnikow(JTextField txtIloscZawodnikow) {
		this.txtIloscZawodnikow = txtIloscZawodnikow;
	}

	public JTextField getTxtTrener() {
		return txtTrener;
	}

	public void setTxtTrener(JTextField txtTrener) {
		this.txtTrener = txtTrener;
	}

	public JTextField getTxtUmiejetnosc() {
		return txtUmiejetnosc;
	}

	public void setTxtUmiejetnosc(JTextField txtUmiejetnosc) {
		this.txtUmiejetnosc = txtUmiejetnosc;
	}

	public JTextField getTxtSrednia() {
		return txtSrednia;
	}

	public void setTxtSrednia(JTextField txtSrednia) {
		this.txtSrednia = txtSrednia;
	}

	public JButton getBtnUsunZawodnika() {
		return btnUsunZawodnika;
	}

	public void setBtnUsunZawodnika(JButton btnUsunZawodnika) {
		this.btnUsunZawodnika = btnUsunZawodnika;
	}

	public JButton getBtnEdytujZawodnika() {
		return btnEdytujZawodnika;
	}

	public void setBtnEdytujZawodnika(JButton btnEdytujZawodnika) {
		this.btnEdytujZawodnika = btnEdytujZawodnika;
	}

	public JButton getBtnDodajzawodnika() {
		return btnDodajzawodnika;
	}

	public void setBtnDodajzawodnika(JButton btnDodajzawodnika) {
		this.btnDodajzawodnika = btnDodajzawodnika;
	}

	public JList getList() {
		return list;
	}

	public void setList(JList list) {
		this.list = list;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}
	
	
		


		
		
		
		
		
}
